<?php
/*  
  Copyright (c) 2010-02 SongCMS 
  SongCMS All Rights Reserved. 
  Support:www.SongCMS.com
  QQ:544255858   19951025
  Author:Song  Version:3.17
  Date:2010-08-12 09:28:32
*/

include_once('Admin.php');
class GenerateCode{
	private $POST;
	public function __construct($xPOST){
		$this -> POST = $xPOST;
		//初始化
		if (!is_numeric($this -> POST['Row']) || $this -> POST['Row'] < 1) $this -> POST['Row'] = 1; //行
		if (!is_numeric($this -> POST['Column']) || $this -> POST['Column'] < 1) $this -> POST['Column'] = 1; //列	
		if (!is_numeric($this -> POST['Start'])) $this -> POST['Start'] = 0; //起始数据
		if (!is_numeric($this -> POST['Spacing'])) $this -> POST['Spacing'] = 0; //间距
		if (!is_numeric($this -> POST['Height'])) $this -> POST['Height'] = 20; //行高
		if (!is_numeric($this -> POST['Width'])) $this -> POST['Width'] = 850; //整体表格宽度
		if (!is_numeric($this -> POST['Character'])) $this -> POST['Character'] = 0; //截取字符数
	}
	
	//调用标题列表 [Module可选参数：product、news、page、download、message]
	public function _title($Module){
		extract($this -> POST);
		//换行 及  Tab跳格键
		$rn = "\r\n"; $tab = chr(9); $rntab = $rn.$tab;	$tdbat = $rntab.$tab.$tab.$tab.$tab.$tab;
		$Prefix = empty($Prefix) ? NULL : "{$tdbat}<img src=\"images/{$Prefix}\" /> "; //前缀小图标
		$xWidth = $Width ==0 ? NULL : ' width="'.((int)($Width/$Column)).'"'; //内部表格宽度，总表格宽 / 列数
		switch ($Module){
			case 'product':
				$SCcode = '{sc:product->sList Sort="'.$Sort.'" Rela="'.$Rela.'" isImg="'.$Abbre.'" Start="'.$Start.'" Total="'.($Row*$Column).'" isPage="'.$isPage.'" isSearch="'.$isSearch.'" Interception="'.$Character.'" Symbol="'.$Suffix.'"#}';
				$SCvars = 'product';
				$SCitem = 'ps';
				$SCdata = "<table{$xWidth} border=\"0\" cellspacing=\"{$Spacing}\" cellpadding=\"0\">";
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}<tr>";
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}{$tab}<td height=\"{$Height}\">{$Prefix}";
				if(is_numeric($Show) && $Show != '-1') $SCdata .= "{$rntab}{$tab}{$tab}{$tab}{$tab}{$tab}".'[{sc:sdb->CidToName Rela=$'.$SCitem.'.ProductRela level="'.$Show.'" blank=" | "#}] '; //类别名称
				$SCdata .= $tdbat.'<a target="'.$Target.'" href="{sc:$'.$SCitem.'.URL#}">{sc:$'.$SCitem.'.ProductName#}</a>';	 //标题及链接
				if($Click == 1) $SCdata .= $tdbat.'<font color="#666666">{sc:if $Sys.WebStaticHTML==0#}({sc:$'.$SCitem.'.ProductClick#}){sc:/if#}</font>'; //点击数
				if($Hot != 0) $SCdata .= $tdbat.'{sc:if $'.$SCitem.'.ProductClick > '.$Hot.'#}<img src="./images/hot.gif">{sc:/if#}'; //hot图标
				if($New != 0) $SCdata .= $tdbat.'{sc:if $'.$SCitem.'.Difference < '.$New.'#}<img src="./images/new.gif">{sc:/if#}'; //new图标
				$SCdata .= $tdbat.'{sc:* //// 注释：可以使用 "{sc:$'.$SCitem.'.字段名称#}" 调用其它字段数据，字段名可以在 "执行SQL语句" 管理中查看，此行为注释，可以删除。//// *#}';
				$SCdata .= $rntab.$tab.$tab.$tab.$tab.'</td>';
				if(!empty($Date)) $SCdata .= $rntab.$tab.$tab.$tab.$tab.'<td width="70">{sc:$'.$SCitem.'.ProductTime|date_format:"'.$Date.'"#}</td>';
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}</tr>";
				$SCdata .= "{$rntab}{$tab}{$tab}</table>";
				$result = $this -> general($SCcode,$SCvars,$SCdata,$SCitem);
				return $result;	
				break;
			case 'news':
				$SCcode = '{sc:news->sList Sort="'.$Sort.'" Rela="'.$Rela.'" isImg="'.$Abbre.'" Start="'.$Start.'" Total="'.($Row*$Column).'" isPage="'.$isPage.'" isSearch="'.$isSearch.'" Interception="'.$Character.'" Symbol="'.$Suffix.'"#}';
				$SCvars = 'news';
				$SCitem = 'ns';
				$SCdata = "<table{$xWidth} border=\"0\" cellspacing=\"{$Spacing}\" cellpadding=\"0\">";
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}<tr>";
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}{$tab}<td height=\"{$Height}\">{$Prefix}";
				if(is_numeric($Show) && $Show != '-1') $SCdata .= "{$rntab}{$tab}{$tab}{$tab}{$tab}{$tab}".'[{sc:sdb->CidToName Rela=$'.$SCitem.'.NewsRela level="'.$Show.'" blank=" | "#}] '; //类别名称
				$SCdata .= $tdbat.'<a target="'.$Target.'" href="{sc:$'.$SCitem.'.URL#}">{sc:$'.$SCitem.'.NewsTitle#}</a>';	 //标题及链接
				if($Click == 1) $SCdata .= $tdbat.'<font color="#666666">{sc:if $Sys.WebStaticHTML==0#}({sc:$'.$SCitem.'.NewsClick#}){sc:/if#}</font>'; //点击数
				if($Hot != 0) $SCdata .= $tdbat.'{sc:if $'.$SCitem.'.NewsClick > '.$Hot.'#}<img src="./images/hot.gif">{sc:/if#}'; //hot图标
				if($New != 0) $SCdata .= $tdbat.'{sc:if $'.$SCitem.'.Difference < '.$New.'#}<img src="./images/new.gif">{sc:/if#}'; //new图标
				$SCdata .= $tdbat.'{sc:* //// 注释：可以使用 "{sc:$'.$SCitem.'.字段名称#}" 调用其它字段数据，字段名可以在 "执行SQL语句" 管理中查看，此行为注释，可以删除。//// *#}';
				$SCdata .= $rntab.$tab.$tab.$tab.$tab.'</td>';
				if(!empty($Date)) $SCdata .= $rntab.$tab.$tab.$tab.$tab.'<td width="70">{sc:$'.$SCitem.'.NewsTime|date_format:"'.$Date.'"#}</td>';
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}</tr>";
				$SCdata .= "{$rntab}{$tab}{$tab}</table>";
				$result = $this -> general($SCcode,$SCvars,$SCdata,$SCitem);
				return $result;			
				break;
			case 'page':
				$SCcode = '{sc:article->sList Sort="'.$Sort.'" Rela="'.$Rela.'" isImg="'.$Abbre.'" Start="'.$Start.'" Total="'.($Row*$Column).'" isPage="'.$isPage.'" isSearch="'.$isSearch.'" Interception="'.$Character.'" Symbol="'.$Suffix.'"#}';
				$SCvars = 'article';
				$SCitem = 'as';
				$SCdata = "<table{$xWidth} border=\"0\" cellspacing=\"{$Spacing}\" cellpadding=\"0\">";
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}<tr>";
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}{$tab}<td height=\"{$Height}\">{$Prefix}";
				if(is_numeric($Show) && $Show != '-1') $SCdata .= "{$rntab}{$tab}{$tab}{$tab}{$tab}{$tab}".'[{sc:sdb->CidToName Rela=$'.$SCitem.'.ArticleRela level="'.$Show.'" blank=" | "#}] '; //类别名称
				$SCdata .= $tdbat.'<a target="'.$Target.'" href="{sc:$'.$SCitem.'.URL#}">{sc:$'.$SCitem.'.ArticleTitle#}</a>';	 //标题及链接
				if($Click == 1) $SCdata .= $tdbat.'<font color="#666666">{sc:if $Sys.WebStaticHTML==0#}({sc:$'.$SCitem.'.ArticleClick#}){sc:/if#}</font>'; //点击数
				if($Hot != 0) $SCdata .= $tdbat.'{sc:if $'.$SCitem.'.ArticleClick > '.$Hot.'#}<img src="./images/hot.gif">{sc:/if#}'; //hot图标
				if($New != 0) $SCdata .= $tdbat.'{sc:if $'.$SCitem.'.Difference < '.$New.'#}<img src="./images/new.gif">{sc:/if#}'; //new图标
				$SCdata .= $tdbat.'{sc:* //// 注释：可以使用 "{sc:$'.$SCitem.'.字段名称#}" 调用其它字段数据，字段名可以在 "执行SQL语句" 管理中查看，此行为注释，可以删除。//// *#}';
				$SCdata .= $rntab.$tab.$tab.$tab.$tab.'</td>';
				if(!empty($Date)) $SCdata .= $rntab.$tab.$tab.$tab.$tab.'<td width="70">{sc:$'.$SCitem.'.ArticleTime|date_format:"'.$Date.'"#}</td>';
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}</tr>";
				$SCdata .= "{$rntab}{$tab}{$tab}</table>";
				$result = $this -> general($SCcode,$SCvars,$SCdata,$SCitem);
				return $result;			
				break;				
			case 'download':
				// 改变$Sort排序;
				$Sort = $Sort == 1 ? 0 : ($Sort == 4 ? 1 : 2);
				$SCcode = '{sc:download->sList Sort="'.$Sort.'" Rela="'.$Rela.'" Start="'.$Start.'" Total="'.($Row*$Column).'" isPage="'.$isPage.'" isSearch="'.$isSearch.'" Interception="'.$Character.'" Symbol="'.$Suffix.'"#}';
				$SCvars = 'Download';
				$SCitem = 'ds';
				$SCdata = "<table{$xWidth} border=\"0\" cellspacing=\"{$Spacing}\" cellpadding=\"0\">";
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}<tr>";
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}{$tab}<td height=\"{$Height}\">{$Prefix}";
				if(is_numeric($Show) && $Show != '-1') $SCdata .= "{$rntab}{$tab}{$tab}{$tab}{$tab}{$tab}".'[{sc:sdb->CidToName Rela=$'.$SCitem.'.DownloadRela level="'.$Show.'" blank=" | "#}] '; //类别名称
				$SCdata .= $tdbat.'<a target="'.$Target.'" href="{sc:$'.$SCitem.'.URL#}">{sc:$'.$SCitem.'.DownloadTitle#}</a>';	 //标题及链接
				if($Click == 1) $SCdata .= $tdbat.'({sc:$'.$SCitem.'.DownloadViews#})'; //下载次数
				if($Hot != 0) $SCdata .= $tdbat.'{sc:if $'.$SCitem.'.DownloadViews > '.$Hot.'#}<img src="./images/hot.gif">{sc:/if#}'; //hot图标
				if($New != 0) $SCdata .= $tdbat.'{sc:if $'.$SCitem.'.Difference < '.$New.'#}<img src="./images/new.gif">{sc:/if#}'; //new图标
				$SCdata .= $tdbat.'{sc:* //// 注释：可以使用 "{sc:$'.$SCitem.'.字段名称#}" 调用其它字段数据，字段名可以在 "执行SQL语句" 管理中查看，此行为注释，可以删除。//// *#}';
				$SCdata .= $rntab.$tab.$tab.$tab.$tab.'</td>';
				if(!empty($Date)) $SCdata .= $rntab.$tab.$tab.$tab.$tab.'<td width="70">{sc:$'.$SCitem.'.DownloadAddDate|date_format:"'.$Date.'"#}</td>';
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}</tr>";
				$SCdata .= "{$rntab}{$tab}{$tab}</table>";
				$result = $this -> general($SCcode,$SCvars,$SCdata,$SCitem);
				return $result;			
				break;
			case 'message':
				$SCcode = '{sc:guestbook->sList Total="'.($Row*$Column).'" isPage="'.$isPage.'"#}';
				$SCvars = 'guestbook';
				$SCitem = 'gs';
				$SCdata = "<table{$xWidth} border=\"0\" cellspacing=\"{$Spacing}\" cellpadding=\"0\">";
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}<tr>";
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}{$tab}<td height=\"{$Height}\">";
				$SCdata .= $tdbat.'{sc:* //// 注释：留言模块只生成基础数据调用演示，具体布局请自行设计。//// *#}';
				$SCdata .= $tdbat.'<a href="{sc:$Sys.URL.Guestbook#}">{sc:$'.$SCitem.'.GuestBookTitle#}</a><br />'; //标题及链接
				$SCdata .= $tdbat.'留言者昵称：{sc:$'.$SCitem.'.GuestBookName#}<br />';
				$SCdata .= $tdbat.'留言者电子邮件：{sc:$'.$SCitem.'.GuestBookMail#}<br />';
				$SCdata .= $tdbat.'电话：{sc:$'.$SCitem.'.GuestBookTel#}<br />';
				$SCdata .= $tdbat.'公司传真：{sc:$'.$SCitem.'.GuestBookFax#}<br />';
				$SCdata .= $tdbat.'公司名称：{sc:$'.$SCitem.'.GuestBookCompany#}<br />';
				$SCdata .= $tdbat.'公司地址：{sc:$'.$SCitem.'.GuestBookAddress#}<br />';
				$SCdata .= $tdbat.'QQ号：{sc:$'.$SCitem.'.GuestBookQQ#}<br />';
				$SCdata .= $tdbat.'性别(0女,1男)：{sc:if $'.$SCitem.'.GuestBookSex == "1"#}男{sc:else#}女{sc:/if#}<br />';
				$SCdata .= $tdbat.'主题：{sc:$'.$SCitem.'.GuestBookTitle#}<br />';
				$SCdata .= $tdbat.'留言内容：{sc:$'.$SCitem.'.GuestBookContent#}<br />';
				$SCdata .= $tdbat.'留言者IP：{sc:$'.$SCitem.'.GuestBookIP#}<br />';
				$SCdata .= $tdbat.'留言时间：{sc:$'.$SCitem.'.GuestBookTime#}<br />';
				$SCdata .= $tdbat.'审核(0未审核,1通过审核)：{sc:$'.$SCitem.'.GuestBookShow#}<br />';
				$SCdata .= $tdbat.'回复内容：{sc:$'.$SCitem.'.GuestBookResumes#}<br />';
				$SCdata .= $tdbat.'回复人：{sc:$'.$SCitem.'.GuestBookResumesName#}<br />';
				$SCdata .= $tdbat.'回复时间：{sc:$'.$SCitem.'.GuestBookResumesTime#}<br /><br /><hr /><br />';				
				$SCdata .= $rntab.$tab.$tab.$tab.$tab.'</td>';
				$SCdata .= "{$rntab}{$tab}{$tab}{$tab}</tr>";
				$SCdata .= "{$rntab}{$tab}{$tab}</table>";
				$result = $this -> general($SCcode,$SCvars,$SCdata,$SCitem);
				return $result;			
				break;
			default:
				return false;
				break;			
		}
	}
	
	//调用缩略图列表 [Module可选参数：product、news、page]
	public function _photo($Module){
		extract($this -> POST);
		$rn = "\r\n"; $tab = chr(9); $rntab = $rn.$tab;
		switch ($Module){
			case 'product' : 
				$SCcode = '{sc:product->sList Sort="'.$Sort.'" Rela="'.$Rela.'" isImg="'.$Abbre.'" Start="'.$Start.'" Total="'.($Row*$Column).'" isPage="'.$isPage.'" isSearch="'.$isSearch.'" Interception="'.$Character.'" Symbol="'.$Suffix.'"#}';
				$SCvars = 'product';
				$SCitem = 'ps';	
				if ($Layout == 0){ //上下型
					$SCdata = '<a target="'.$Target.'" href="{sc:$'.$SCitem.'.URL#}">{sc:$'.$SCitem.'.ProductName#}</a><br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.'{sc:$'.$SCitem.'.ProductModel#}<br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.'{sc:* //// 注释：可以使用 "{sc:$'.$SCitem.'.字段名称#}" 调用其它字段数据。//// *#}';
				} else { //左右型
					$SCdata = '{sc:$Html.pName#}：<a target="'.$Target.'" href="{sc:$'.$SCitem.'.URL#}">{sc:$'.$SCitem.'.ProductName#}</a><br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.'{sc:$Html.Model#}：{sc:$'.$SCitem.'.ProductModel#}<br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.'{sc:$Html.Specifications#}：{sc:$'.$SCitem.'.ProductPrice#}<br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.'{sc:$Html.Description#}：{sc:sdb->html2txt word="{sc:$'.$SCitem.'.ProductSummary#}" length=50#} {sc:* // 过滤掉内容中的HTML标签并截取前50个字符 // *#}<br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.'{sc:* //// 注释：可以使用 "{sc:$'.$SCitem.'.字段名称#}" 调用其它字段数据。//// *#}';
				}
				$SCimage = '{sc:$'.$SCitem.'.ProductPhoto1#}';
				return $this->general_photo($SCcode,$SCvars,$SCimage,$SCdata,$SCitem);
				break;
			case 'news' :
				$SCcode = '{sc:news->sList Sort="'.$Sort.'" Rela="'.$Rela.'" isImg="'.$Abbre.'" Start="'.$Start.'" Total="'.($Row*$Column).'" isPage="'.$isPage.'" isSearch="'.$isSearch.'" Interception="'.$Character.'" Symbol="'.$Suffix.'"#}';
				$SCvars = 'news';
				$SCitem = 'ns';	
				if ($Layout == 0){ //上下型
					$SCdata = '<a target="'.$Target.'" href="{sc:$'.$SCitem.'.URL#}">{sc:$'.$SCitem.'.NewsTitle#}</a><br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.'{sc:* //// 注释：可以使用 "{sc:$'.$SCitem.'.字段名称#}" 调用其它字段数据。//// *#}';
				} else { //左右型
					$SCdata = '<a target="'.$Target.'" href="{sc:$'.$SCitem.'.URL#}">{sc:$'.$SCitem.'.NewsTitle#}</a><br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.$tab.'{sc:$Html.Date#}：{sc:$'.$SCitem.'.NewsTime#}<br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.$tab.'{sc:$Html.Source#}{sc:$'.$SCitem.'.NewsSource#}&nbsp;&nbsp;{sc:$Html.Clicks#}：{sc:$'.$SCitem.'.NewsClick#}<br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.$tab.'{sc:sdb->html2txt word="{sc:$'.$SCitem.'.NewsContent#}" length=50#} {sc:* // 过滤掉内容中的HTML标签并截取前50个字符 // *#}<br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.$tab.'{sc:* //// 注释：可以使用 "{sc:$'.$SCitem.'.字段名称#}" 调用其它字段数据。//// *#}';
				}
				$SCimage = '{sc:$'.$SCitem.'.NewsPhoto#}';
				return $this->general_photo($SCcode,$SCvars,$SCimage,$SCdata,$SCitem);			
				break;
			case 'page';
				$SCcode = '{sc:article->sList Sort="'.$Sort.'" Rela="'.$Rela.'" isImg="'.$Abbre.'" Start="'.$Start.'" Total="'.($Row*$Column).'" isPage="'.$isPage.'" isSearch="'.$isSearch.'" Interception="'.$Character.'" Symbol="'.$Suffix.'"#}';
				$SCvars = 'article';
				$SCitem = 'as';	
				if ($Layout == 0){ //上下型
					$SCdata = '<a target="'.$Target.'" href="{sc:$'.$SCitem.'.URL#}">{sc:$'.$SCitem.'.ArticleTitle#}</a><br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.'{sc:* //// 注释：可以使用 "{sc:$'.$SCitem.'.字段名称#}" 调用其它字段数据。//// *#}';
				} else { //左右型
					$SCdata = '<a target="'.$Target.'" href="{sc:$'.$SCitem.'.URL#}">{sc:$'.$SCitem.'.ArticleTitle#}</a><br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.$tab.'{sc:$Html.Date#}：{sc:$'.$SCitem.'.ArticleTime#}<br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.$tab.'{sc:sdb->html2txt word="{sc:$'.$SCitem.'.ArticleContent#}" length=100#} {sc:* // 过滤掉内容中的HTML标签并截取前100个字符 // *#}<br />';
					$SCdata .= $rntab.$tab.$tab.$tab.$tab.$tab.'{sc:* //// 注释：可以使用 "{sc:$'.$SCitem.'.字段名称#}" 调用其它字段数据。//// *#}';
				}
				$SCimage = '{sc:$'.$SCitem.'.ArticleImg#}';
				return $this->general_photo($SCcode,$SCvars,$SCimage,$SCdata,$SCitem);					
				break;
			default:
				return false;
				break;
		}
	}
	
	//调用内页，不带框架，只显示数据 [Module可选参数：product、news、page]
	public function _detailed($Module){
		include_once('../config/field.php'); //自定义字段
		switch ($Module){
			case 'product' :
				// 自定义字段
				$aFIELD = $customize_field['product'];
				foreach($aFIELD as $i => $n){
					$xFIELD .= $n[1].'：{sc:$p.'.$n[0].'#} <br />'."\r\n";
				}
				$result = '{sc:* //// 注释：内页只展示调用数据，不生成排版、布局代码：//// *#}'."\r\n\r\n";
				$result .= '产品ID：{sc:$p.ID#} <br />'."\r\n";
				$result .= '产品语言种类(所属第几种语言)：{sc:$p.ProductLang#} <br />'."\r\n";
				$result .= '产品所属类别路径：{sc:$p.ProductRela#} <br />'."\r\n";
				$result .= '所属类别名称：{sc:sdb->CidToName Rela="{sc:$p.ProductRela#}" blank=" → "#} <br />'."\r\n";
				$result .= '产品名称：{sc:$p.ProductName#} <br />'."\r\n";
				$result .= '名称字体颜色：{sc:$p.ProductNameColor#} <br />'."\r\n";
				$result .= '品牌：{sc:$p.ProductBrand#} <br />'."\r\n";
				$result .= '型号：{sc:$p.ProductModel#} <br />'."\r\n";
				$result .= '编码：{sc:$p.ProductCoding#} <br />'."\r\n";
				$result .= '规格：{sc:$p.ProductSpeci#} <br />'."\r\n";
				$result .= '颜色：{sc:$p.ProductColor#} <br />'."\r\n";
				$result .= '价格：{sc:$p.ProductPrice#} <br />'."\r\n";
				$result .= '图片1地址：{sc:$p.ProductPhoto1#} <br />'."\r\n";
				$result .= '图片2地址：{sc:$p.ProductPhoto2#} <br />'."\r\n";
				$result .= '产品关键字：{sc:$p.ProductKeyWord#} <br />'."\r\n";
				$result .= '简要描述：{sc:$p.ProductSummary#} <br />'."\r\n";
				$result .= '详细介绍：{sc:$p.ProductContent#} <br />'."\r\n";
				$result .= '是否通过审核(0否,1通过)：{sc:$p.ProductAudit#} <br />'."\r\n";
				$result .= '是否为推荐产品(0否,1是)：{sc:$p.ProductRecommended#} <br />'."\r\n";
				$result .= '是否为新产品(0一般产品,1新产品)：{sc:$p.ProductNew#} <br />'."\r\n";
				$result .= '点击次：{sc:$p.ProductClick#}数 <br />'."\r\n";
				$result .= '排序值：{sc:$p.ProductSort#} <br />'."\r\n";
				$result .= '发布者：{sc:$p.ProductPublished#} <br />'."\r\n";
				$result .= '添加时间：{sc:$p.ProductTime#} <br /><br />'."\r\n\r\n";
				$result .= '======= 其它自定义字段 ======= <br />'."\r\n";
				$result .= empty($xFIELD) ? '<em>没有自定义字段。</em>' : $xFIELD;
				return $result;
				break;
			case 'news' :
				// 自定义字段
				$aFIELD = $customize_field['news'];
				foreach($aFIELD as $i => $n){
					$xFIELD .= $n[1].'：{sc:$n.'.$n[0].'#} <br />'."\r\n";
				}
				$result = '{sc:* //// 注释：内页只展示调用数据，不生成排版、布局代码：//// *#}'."\r\n\r\n";
				$result .= '新闻ID：{sc:$n.ID#} <br />'."\r\n";
				$result .= '新闻语言种类(所属第几种语言)：{sc:$n.NewsLang#} <br />'."\r\n";
				$result .= '新闻所属类别路径：{sc:$n.NewsRela#} <br />'."\r\n";
				$result .= '所属类别名称：{sc:sdb->CidToName Rela="{sc:$n.NewsRela#}" blank=" → "#} <br />'."\r\n";
				$result .= '新闻标题：{sc:$n.NewsTitle#} <br />'."\r\n"; 
				$result .= '标题字体颜色：{sc:$n.NewsTitleColor#} <br />'."\r\n";
				$result .= '新闻内容：{sc:$n.NewsContent#} <br />'."\r\n";
				$result .= '新闻缩略图：{sc:$n.NewsPhoto#} <br />'."\r\n";
				$result .= '新闻来源：{sc:$n.NewsSource#} <br />'."\r\n";
				$result .= '是否为推荐新闻(0否,1是)：{sc:$n.NewsRecommended#} <br />'."\r\n"; 
				$result .= '发布者：{sc:$n.NewsPublished#} <br />'."\r\n";
				$result .= '新闻关键字：{sc:$n.NewsKeyWord#} <br />'."\r\n";
				$result .= '是否通过审核(0否,1通过)：{sc:$n.NewsAudit#} <br />'."\r\n";
				$result .= '点击次数：{sc:$n.NewsClick#} <br />'."\r\n";
				$result .= '排序值：{sc:$n.NewsSort#} <br />'."\r\n";
				$result .= '添加时间：{sc:$n.NewsTime#} <br /><br />'."\r\n\r\n";
				$result .= '======= 其它自定义字段 ======= <br />'."\r\n";
				$result .= empty($xFIELD) ? '<em>没有自定义字段。</em>' : $xFIELD;
				return $result;
				break;
			case 'page' :
				$aFIELD = $customize_field['page'];
				foreach($aFIELD as $i => $n){
					$xFIELD .= $n[1].'：{sc:$sc.'.$n[0].'#} <br />'."\r\n";
				}
				$result = '{sc:* //// 注释：内页只展示调用数据，不生成排版、布局代码：//// *#}'."\r\n\r\n";
				$result .= '文章ID：{sc:$sc.ID#} <br />'."\r\n";
				$result .= '内容语言种类(所属第几种语言)：{sc:$sc.ArticleLang#} <br />'."\r\n";
				$result .= '内容所属栏目路径：{sc:$sc.ArticleRela#} <br />'."\r\n";
				$result .= '内容标题：{sc:$sc.ArticleTitle#} <br />'."\r\n";
				$result .= '内容缩略图地址：{sc:$sc.ArticleImg#} <br />'."\r\n";
				$result .= '关键字：{sc:$sc.ArticleKeyWord#} <br />'."\r\n";
				$result .= '详细内容：{sc:$sc.ArticleContent#} <br />'."\r\n";
				$result .= '内容来源：{sc:$sc.ArticleSource#} <br />'."\r\n";
				$result .= '发布人：{sc:$sc.ArticlePublished#} <br />'."\r\n";
				$result .= '是否通过审核(0否,1通过)：{sc:$sc.ArticleAudit#} <br />'."\r\n";
				$result .= '是否为推荐内容(0否,1是)：{sc:$sc.ArticleRecommended#} <br />'."\r\n";
				$result .= '点击次数：{sc:$sc.ArticleClick#} <br />'."\r\n";
				$result .= '排序(倒序)：{sc:$sc.ArticleSort#} <br />'."\r\n";
				$result .= '添加时间：{sc:$sc.ArticleTime#} <br /><br />'."\r\n\r\n";				
				$result .= '======= 其它自定义字段 ======= <br />'."\r\n";
				$result .= empty($xFIELD) ? '<em>没有自定义字段。</em>' : $xFIELD;
				return $result;
				break;
			default :
				return false;
				break;
		}
	}
	
	//调用分类 [Module可选参数：product、news、page、download]
	public function _class($Module){
		extract($this -> POST);
		//换行 及  Tab跳格键
		$rn = "\r\n"; $tab = chr(9); $rntab = $rn.$tab;	$tdbat = $rntab.$tab.$tab.$tab.$tab.$tab;
		switch ($Module){
			case 'product'	: $type = 2; break;
			case 'news'		: $type = 1; break;
			case 'page'		: $type = 0; break;
			case 'download'	: $type = 3; break;
			default : return false; break;
		}
		$cCode = "{sc:* //// 注：分类调用只展示调用数据，不生成排版、布局代码：//// *#}{$rn}{$rn}";
		$cCode .= '{sc:sdb->column Type="'.$type.'" Colu="'.$Rela.'"#}';
		$cCode .= $rn.'{sc:foreach from=$column item=c name=x#}';
		$cCode .= $rn.'{sc:section name=ne loop=$c.ColumnLevel#}&nbsp;&nbsp;&nbsp;&nbsp;{sc:/section#}';						
		$cCode .= $rn.'<a href="{sc:$c.URL#}">{sc:$c.ColumnName#}</a> <br />';
		$cCode .= $rn.'{sc:* //// 注释：可以使用 "{sc:$c.类别字段名称#}" 调用其它字段数据。此行注释，可以删除。 //// *#}';
		$cCode .= $rn.'{sc:/foreach#}';
		return $cCode;
	}
	
	//网站常用参数及基本数据调用
	public function _system(){
		return '<pre>
		CMS版本号：{sc:$Sys.CMSVersion#} 
		程序最后更新时间：{sc:$Sys.CMSUpDate#} 
		网站是否开启了中文简繁切换功能(0未开启，1开启)：{sc:$Sys.isTraditional#} 
		当前站点所属语言索引值(第几种语言)：{sc:$Sys.Lang#} 
		网站模板编码调用：{sc:$Sys.Charset#} 
		网址域名：{sc:$Sys.WebHost#} 
		网站一共开通几种语言：{sc:$ys.WebLangKind#} 
		用户是否已登录,值为 songcms 表示已登录：{sc:$Sys.isLogin#} 
		当前模板目录路径：{sc:$Sys.TemDir#} 
		GET参数,如地址"?flink/l2",模板中使用：{sc:$Sys.sGET.f#}则返回link：{sc:$Sys.sGET#} 
		是否开启了HTML静态化(1已经开启,0未开启状态)：{sc:$Sys.WebStaticHTML#} 
		
		一个随机数(用于禁止缓存的样式或文件)：{sc:$Sys.mtRand#} 
		当前页的模板文件名称：{sc:$TemFile#} 
		
		登录表单的action值(登录表单提交的URL)：{sc:$Sys.URL.LoginSub#} 
		修改密码页URL：{sc:$Sys.URL.ChanUser#} 
		退出登录链接URL：{sc:$Sys.URL.OutLogin#} 
		注册URL：{sc:$Sys.URL.Reg#} 
		注册表单的action值(注册表单提交的URL)：{sc:$Sys.URL.RegSub#} 
		首页链接URL：{sc:$Sys.URL.Home#} 
		产品首页链接URL：{sc:$Sys.URL.Products#}  
		新闻页链接URL：{sc:$Sys.URL.News#} 
		意见反馈链接URL：{sc:$Sys.URL.Feedback#} 
		意见反馈提交URL：{sc:$Sys.URL.FeedbackSub#} 
		留言本链接URL ：{sc:$Sys.URL.Guestbook#} 
		留言本提交表单URL：{sc:$Sys.URL.GuestbookSub#}  
		下载首页URL：{sc:$Sys.URL.Download#} 
		
		网站基本设置参数调用中的参数调用：
		版本语言种类(所属第几种语言)：{sc:$Web.WebLang#} 
		网站标题：{sc:$Web.WebTitle#} 
		网站Logo地址：{sc:$Web.WebLogo#} 
		网站描述：{sc:$Web.WebDescription#} 
		网站关键字：{sc:$Web.Webkeyword#} 
		版权信息：{sc:$Web.WebCopyright#} 
		邮件地址：{sc:$Web.WebEmail#} 
		客服QQ：{sc:$Web.WebQQ#} 
		客服MSN：{sc:$Web.WebMSN#} 
		客服电话：{sc:$Web.WebTel1#} 
		客服电话：{sc:$Web.WebTel2#} 
		公司传真号：{sc:$Web.WebFax#} 
		公司地址：{sc:$Web.WebAddress#} 
		最后一次设置者IP：{sc:$Web.WebIP#} 
		最后一次设置时间：{sc:$Web.WebDate#} 
		最后一次设置者：{sc:$Web.WebAdminName#}
		</pre>'; 
	}
	
	// 标题列表调用形式通用框架
	// $SCcode : 调用代码
	// $SCvars : 数据集变量名
	// $SCdata : 显示数据，通常为一个表格布局
	// $SCitem : SC item值
	private function general($SCcode,$SCvars,$SCdata,$SCitem){
		extract($this -> POST);
		//换行 及  Tab跳格键
		$rn = "\r\n"; $tab = chr(9); $rntab = $rn.$tab;
		$tdClass = $Interval == 1 ? ' style="border-bottom:1px #999 solid;"' : ($Interval == 2 ? ' style="background:url(images/0101.gif) bottom left repeat-x;"' : NULL); //间隔线
		$isWidth = empty($Width) ? NULL : " width=\"{$Width}\"";
		$result = '<table'.$isWidth.' border="0" cellspacing="0" cellpadding="0" align="center" style="margin:0 auto;">';
		$result .= $rntab.'<tr>';
		$result .= $rntab.$SCcode;
		$result .= $rntab.'{sc:foreach from=$'.$SCvars.' item='.$SCitem.' name=x#}';
		$result .= $rntab.$tab."<td{$tdClass}>{$rntab}{$tab}{$tab}{$SCdata}{$rntab}{$tab}</td>";
		$result .= $rntab.'{sc:if $smarty.foreach.x.iteration is div by '.$Column.'#}</tr><tr>{sc:/if#}';
		$result .= $rntab.'{sc:foreachelse#}<td align="center" height="30">{sc:$Html.NotProduct#}</td>'; // 没有相关数据
		$result .= $rntab.'{sc:/foreach#}';
		$result .= $rntab.'</tr>';
		if($isPage == 1) $result .= $rntab.'<tr><td height="35" colspan="'.$Column.'" align="center">{sc:$pages#}</td></tr>'; //分页
		$result .= $rn.'</table>'; 
		return $result;
	}
	
	// 缩略图调用形式通用框架
	// $SCcode : 调用代码
	// $SCvars : 数据集变量名
	// $SCimage : 缩略图地址
	// $SCdata : 显示数据，通常为一个表格布局
	// $SCitem : SC item值
	private function general_photo($SCcode,$SCvars,$SCimage,$SCdata,$SCitem){
		extract($this -> POST);
		$rn = "\r\n"; $tab = chr(9); $rntab = $rn.$tab;
		$isWidth = empty($Width) ? NULL : " width=\"{$Width}\"";
		$result = '<table'.$isWidth.' border="0" cellspacing="'.$Spacing.'" cellpadding="0" align="center" style="margin:0 auto;">';
		$result .= $rntab.'<tr>';
		$result .= $rntab.$SCcode;
		$result .= $rntab.'{sc:foreach from=$'.$SCvars.' item='.$SCitem.' name=x#}';
		$result .= "{$rntab}{$tab}<td>{$rntab}{$tab}{$tab}<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
		$img = (is_numeric($imgwidth) && $imgwidth > 0) ? '<img src="'.$SCimage.'" width="'.$imgwidth.'"' : '<img src="'.$SCimage.'"';
		if(is_numeric($imgheight) && $imgheight > 0) $img .= ' height="'.$imgheight.'"';
		$img .= ' style="padding:2px; border:1px #CCC solid;"';
		$img .= ' />';
		$img = '<a target="'.$Target.'" href="{sc:$'.$SCitem.'.URL#}">'.$img.'</a>';
		if ($Layout == 0){ //上下型
			$result .= "{$rntab}{$tab}{$tab}{$tab}<tr><td align=\"center\">{$img}</td></tr>";
			$result .= "{$rntab}{$tab}{$tab}{$tab}<tr><td align=\"center\" style=\"line-height:{$Height}px; padding:0 0 10px 0;\">{$rntab}{$tab}{$tab}{$tab}{$tab}{$SCdata}{$rntab}{$tab}{$tab}{$tab}</td></tr>";			
		} else { //左右型
			$result .= "{$rntab}{$tab}{$tab}{$tab}<tr>{$rntab}{$tab}{$tab}{$tab}{$tab}<td align=\"center\" style=\"padding:0 5px 10px 0;\">{$img}</td>{$rntab}{$tab}{$tab}{$tab}{$tab}<td valign=\"top\" style=\"line-height:{$Height}px;\">{$rntab}{$tab}{$tab}{$tab}{$tab}{$tab}{$SCdata}{$rntab}{$tab}{$tab}{$tab}{$tab}</td>{$rntab}{$tab}{$tab}{$tab}</tr>";			
		}
		$result .= "{$rntab}{$tab}{$tab}</table>{$rntab}{$tab}</td>";
		$result .= $rntab.'{sc:if $smarty.foreach.x.iteration is div by '.$Column.'#}</tr><tr>{sc:/if#}';
		$result .= $rntab.'{sc:foreachelse#}<td align="center" height="30">{sc:$Html.NotProduct#}</td>'; // 没有相关数据
		$result .= $rntab.'{sc:/foreach#}';
		$result .= $rntab.'</tr>';
		if($isPage == 1) $result .= $rntab.'<tr><td height="35" colspan="'.$Column.'" align="center">{sc:$pages#}</td></tr>'; //分页
		$result .= $rn.'</table>'; 
		return $result;
	}
		
}

$CodeFile = '../tmp/other/template_code_component.html'; //生成的调用模板文件
if($_POST['a'] == 'CodeForm'){ //生成调用代码
	$GenerateCode = new GenerateCode($_POST);
	$xCode = NULL;
	switch ($_POST['Shape']){
		case 'title' : 
			$xCode = $GenerateCode -> _title($_POST['Module']);
			break;
		case 'photo' : 
			$xCode = $GenerateCode -> _photo($_POST['Module']);
			break;
		case 'detailed' :
			$xCode = $GenerateCode -> _detailed($_POST['Module']);
			if($_POST['Module'] == 'product'){
				//查询一个存在的产品ID
				$SQL = "SELECT `ID` FROM `{$dbprefix}product` WHERE `ProductLang` = {$Lang} && `ProductAudit` = 1 ORDER BY `ID` DESC LIMIT 0,1";
				$ID = $db -> SelectSQL($SQL,1);
				$ID = $ID[0]['ID'];
				if(!is_numeric($ID)) MsgBox(1,"没有发现数据，无法生成调用预览，请在第 {$Lang} 种语言站点(" . $WebLangName[($Lang-1)] . ")中添加至少一个产品。",'1');
				$oFile = "product/i{$ID}";
				break;
			}
			if($_POST['Module'] == 'news'){
				//查询一个存在的产品ID
				$SQL = "SELECT `ID` FROM `{$dbprefix}news` WHERE `NewsLang` = {$Lang} && `NewsAudit` = 1 ORDER BY `ID` DESC LIMIT 0,1";
				$ID = $db -> SelectSQL($SQL,1);
				$ID = $ID[0]['ID'];
				if(!is_numeric($ID)) MsgBox(1,"没有发现数据，无法生成调用预览，请在第 {$Lang} 种语言站点(" . $WebLangName[($Lang-1)] . ")中添加至少一篇新闻。",'1');
				$oFile = "new/i{$ID}";
				break;
			}
			if($_POST['Module'] == 'page'){
				//查询一个存在的产品ID
				$SQL = "SELECT `ID` FROM `{$dbprefix}article` WHERE `ArticleLang` = {$Lang} && `ArticleAudit` = 1 ORDER BY `ID` DESC LIMIT 0,1";
				$ID = $db -> SelectSQL($SQL,1);
				$ID = $ID[0]['ID'];
				if(!is_numeric($ID)) MsgBox(1,"没有发现数据，无法生成调用预览，请在第 {$Lang} 种语言站点(" . $WebLangName[($Lang-1)] . ")中添加至少一篇文章内容。",'1');
				$oFile = "page/i{$ID}";
				break;
			}
			break;
		case 'class' :
			$xCode = $GenerateCode -> _class($_POST['Module']);
			break;
	}
	
	if($_POST['Module'] == 'system'){
		$xCode = $GenerateCode -> _system(); //系统基本参数调用
	}
	
	if(!@file_put_contents($CodeFile,$xCode,true) && !empty($xCode)){
		MsgBox(1,"无法创建零时文件：{$CodeFile}\\n请确认是否有相关文件操作权限。",'1');
	}
}
if($_POST['a'] == 'CodePreview'){
	if(!@file_put_contents($CodeFile,stripcslashes(trim($_POST['xcode']))) && !empty($_POST['xcode'])){
		MsgBox(1,"无法创建零时文件：{$CodeFile}\\n请确认是否有相关文件操作权限。",'1');
	}		
}

//调试URL
if(empty($oFile)) $oFile = "index";
$cFile = "../index.php?l{$Lang}/dtmp,other/etemplate_code.html/f{$oFile}"
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="./images/adminstyle.css" rel="stylesheet" type="text/css" />
<link rel="Shortcut Icon" href="../favicon.ico">
<link rel="Bookmark" href="../favicon.ico">
<script src="../js/csshovernotie6.js" type="text/javascript"></script>
<script type="text/javascript">
function copyCode(oForm) {
	var oJop = oForm.getElementsByTagName("TEXTAREA")[0];
	oJop.focus();
	oJop.select();
	document.execCommand("copy");
	alert("代码已拷贝至剪贴版，请 Ctrl+V 粘贴。");
}
</script>
</head>
<body>
<br />
<form id="zform1" name="zform1" method="post" action="CodeForm.php?Lang=<?php echo $Lang;?>">
<table width="98%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#CCCCCC">
  <tr>
    <td align="center" class="Main_Title">调用代码</td>
  </tr>
  <tr class="odd">
    <td height="20" align="center" style="padding:10px 22px 10px 10px;">
		<textarea style="width:100%; height:250px; padding:5px; color:#090; font-size:13px;" wrap="off" name="xcode" id="xcode"><?php echo htmlspecialchars(file_get_contents($CodeFile));?></textarea>
	</td>
    </tr>
  <tr class="odd">
    <td height="20" align="center">
		<input type="submit" name="button" id="button" value="运行修改后的代码" style="width:130px; height:28px;" /> &nbsp;&nbsp;&nbsp;  
		<input type="button" name="copt" onclick="copyCode(this.form)" value="全选并复制代码" style="width:130px; height:28px;" />
		<input type="hidden" name="a" value="CodePreview" />
	</td>
    </tr>
</table>
</form>
<iframe src="<?php echo $cFile;?>" width="100%" scrolling="auto" frameborder="0" name="CodePreview" id="CodePreview"></iframe>
</body>
</html>
